package br.com.playonline.util.bolao;

import java.util.ArrayList;
import java.util.List;
import java.util.Random;

public abstract class Jogo {

	
	public abstract List<String> gerarJogos(Integer qtdJogos,List<Integer> sequenciaIgnorada,Integer qtdNumeros, Integer numerosCartela, List<Integer> sequenciaObrigatoria);

	public List<Integer> gerar(List<Integer> sequenciaIgnorada,List<Integer> sequencia, Integer qtdNumeros, Integer fimIntervalo){
		List<Integer> sequenciaTrabalhada = new ArrayList<Integer>();
		for(Integer valor : sequencia)
			sequenciaTrabalhada.add(valor);
		Random random = new Random();
		Integer numeroGerado = 0;
		while( sequenciaTrabalhada.size() < qtdNumeros){
			numeroGerado = random.nextInt(fimIntervalo)+1;
			if(numeroGerado <= fimIntervalo && !sequenciaTrabalhada.contains(numeroGerado) && !sequenciaIgnorada.contains(numeroGerado) )
				sequenciaTrabalhada.add(numeroGerado);
		}
		return sequenciaTrabalhada;
	}
	
	public boolean jogosContemJogo(String jogo, List<String> jogos){
		for(String jogoAux : jogos){
			if(jogoAux.equals(jogo))
				return true;
		}
		return false;
	}
	
	public String transformarJogo(List<Integer> sequencia){
		String jogo = "";
		for(Integer numero : sequencia){
			jogo += numero + ",";
		}
		return jogo.substring(0, jogo.length() - 1);
	}
	
	public void addNumerosFixo(List<Integer> sequencia, List<Integer> numerosFixo){
		for(Integer numeroFixo : numerosFixo){
			sequencia.add(numeroFixo);
		}
	}

	
}

